package org.hydrakyoufeng.stuplatform.mapper;

import org.hydrakyoufeng.stuplatform.dto.UserDTO;
import org.hydrakyoufeng.stuplatform.dto.UserListDTO;
import org.hydrakyoufeng.stuplatform.dto.UserLoginDTO;
import org.hydrakyoufeng.stuplatform.dto.UserLogonDTO;
import org.hydrakyoufeng.stuplatform.vo.UserListVO;
import org.hydrakyoufeng.stuplatform.vo.UserLoginVO;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface UserMapper {

    /**
     * 根据查询条件获取用户列表
     * @param userListDTO 用户查询条件 DTO
     * @return 符合条件的用户列表视图对象集合
     */
    List<UserListVO> queryList(UserListDTO userListDTO);


    /**
     * 插入新用户
     * @param userDTO 新用户的DTO对象
     * @return 操作影响的行数
     */
    int insert(UserDTO userDTO);

    /**
     * 更新用户信息
     * @param userDTO 包含更新信息的用户DTO对象
     * @return 操作影响的行数
     */
    int update(UserDTO userDTO);

    /**
     * 删除用户
     * @return 操作影响的行数
     */
    int delete(UserDTO userDTO);

    /**
     * 用于用于注册
     * @param userLogonDTO
     * @return
     */
    int logon(UserLogonDTO userLogonDTO);

    /**
     * 根据条件查询用户的数量
     * @param userDTO
     * @return
     */
    int queryCount(UserDTO userDTO);

    /**
     * 用于用户登录
     * @param userLoginDTO
     * @return
     */
    UserLoginVO login(UserLoginDTO userLoginDTO);
}
